package xhe.enums;

/**
 * <b> 枚举类: </b> 执行代码
 * 
 * @author xhe
 * @version V1.0.0.0
 * @version --2020年1月23日
 */
public enum ExecuteEnum {

	/**
	 * 1:成功
	 */
	Success(1, "成功"),
	/**
	 * 0:失败
	 */
	Error(0, "失败"),
	/**
	 * 2:接口响应超时
	 */
	Timeout(2, "接口响应超时"),
	/**
	 * 101:该方法未实现
	 */
	MethodError(101, "该方法未实现"),
	/**
	 * 102:权限认证错误
	 */
	AuthError(102, "权限认证错误"),
	/**
	 * 103:签名验签错误
	 */
	SignError(103, "签名验签错误"),
	/**
	 * 104:加解密错误
	 */
	SecretError(104, "加解密错误"),
	/**
	 * 201:数据链接错误
	 */
	DBError(201, "数据链接错误"),
	/**
	 * 202:数据查询超时
	 */
	SearchTimeout(202, "数据查询超时"),
	/**
	 * 203:数据查询错误
	 */
	SearchError(203, "数据查询错误"),
	/**
	 * 301:请求参数错误
	 */
	RequestError(301, "请求参数错误"),
	/**
	 * 302:数据格式/结构错误
	 */
	StructError(302, "数据格式/结构错误"),
	/**
	 * 303:加解密/解压缩错误
	 */
	CompressError(303, "加解密/解压缩错误"),
	/**
	 * 404:服务器错误
	 */
	ServiceError(404, "服务器错误"),
	/**
	 * 501:网络超时
	 */
	NetTimeout(501, "网络超时"),
	/**
	 * 502:网络错误
	 */
	NetError(502, "网络错误");

	private String description;
	private int code;

	/**
	 * <b> 构造函数: </b> 实例化执行代码对象
	 * 
	 * @param code        代码
	 * @param description 描述
	 * @return ExecuteEnum 执行代码
	 */
	private ExecuteEnum(int code, String description) {
		this.description = description;
		this.code = code;
	}

	/**
	 * <b> 方法: </b> 获取描述
	 * 
	 * @author xhe
	 * @param index 代码索引
	 * @return String 代码描述
	 * @version V1.0.0.0
	 * @version --2020年1月23日
	 * @version --新增方法
	 */
	public static String getDescription(int index) {
		for (ExecuteEnum c : ExecuteEnum.values()) {
			if (c.getCode() == index) {
				return c.description;
			}
		}
		return null;
	}

	/**
	 * <b> 属性: </b> 获取描述
	 * 
	 * @return String 描述
	 */
	public String getDescription() {
		return this.description;
	}

	/**
	 * <b> 属性: </b> 设置描述
	 * 
	 * @param name 描述
	 */
	public void setDescription(String name) {
		this.description = name;
	}

	/**
	 * <b> 属性: </b> 获取代码
	 * 
	 * @return int 代码
	 */
	public int getCode() {
		return this.code;
	}

	/**
	 * <b> 属性: </b> 设置代码
	 * 
	 * @param index 代码
	 */
	public void setCode(int index) {
		this.code = index;
	}
}
